package ar.uba.fi.tonyvaliente.tree;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * Referencia a un nodo en memoria.
 * @author santiago
 *
 */
public class MemoryReference<K extends Comparable<K>, V> extends Reference<K, V> {

	private static Log log = LogFactory.getFactory().getInstance( MemoryReference.class );
	
	private BPlusTreeNode<K, V> node;
	
	/* (non-Javadoc)
	 * @see ar.uba.fi.datos.tonyvaliente.tree.Reference#getNode()
	 */
	@Override
	public BPlusTreeNode<K, V> getNode() {
		this.node.setThisReference(this);
		return this.node;
	}

	/* (non-Javadoc)
	 * @see ar.uba.fi.datos.tonyvaliente.tree.Reference#setNode(ar.uba.fi.datos.tonyvaliente.tree.BPlusTreeNode)
	 */
	@Override
	public void setNode(BPlusTreeNode<K, V> node) {
		this.node = node;
		this.node.setThisReference(this);

	}
	
	@Override
	public String toString() {
		return node.toString();
	}

	@Override
	public void updateNode() throws BPlusTreeException {
		// No es necesario hacer ninguna actualización porque todo está en memoria.
		
	}

}
